package com.web_bloks.storage.client;

/**
 * 
 * @author Jean-Lou Dupont
 *
 */
public interface SimpleObject {

	/**
	 * Namespace name
	 * @return
	 */
	public String getSimpleObjectNamespace();
	
	/**
	 * Object name within the Namespace
	 */
	public String getSimpleObjectName();
	
	/**
	 * Object's meta data. Treated as opaque.
	 * @return
	 */
	public String getSimpleObjectMeta();
	
	/**
	 * Creation date+time
	 */
	public String getSimpleObjectCreated();
	
	/**
	 * Modification date+time
	 */
	public String getSimpleObjectModified();
	
	/**
	 * Expiration date+time 
	 */
	public String getSimpleObjectExpires();
	
	/**
	 * Serialization
	 * 
	 * @return
	 * @throws SimpleObjectStorageException
	 */
	public String serialize() throws SimpleObjectStorageException;
	
	/**
	 * Initialization from serialized data
	 * 
	 * @param serialized
	 * @throws SimpleObjectStorageException
	 */
	public void initWithSerializeString(String serialized) throws SimpleObjectStorageException;
	
	
}//END